<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script type="text/javascript">
    function Sale(price) {
      this.price = price ? price : 100;
      this.decorations_list = [];
    }

    Sale.decorations = {};
    Sale.decorations.fedtax = {
      getPrice: function(price) {
        return price + price * 5 / 100;
      }
    }

    Sale.decorations.quebc = {
      getPrice: function(price) {

        return price + price * 7.5 / 100;
      }
    }

    Sale.decorations.money = {
      getPrice: function(price) {

        return '$' + price.toFixed(2);
      }
    }

    Sale.prototype.decorate = function(decorate){
      this.decorations_list.push(decorate)
    };

    Sale.prototype.getPrice = function(){
      var price = this.price;
          i,
          max = this.decorations_list.length,
          name;

      for (var i = 0; i < max; i++) {
        name = this.decorations_list[i];
        price = Sale.decorations[name].getPrice(price)
      }

      return price;
    };

    var sale = new Sale(200);
    sale.decorate('fedtax');
    sale.decorate('quebc')
    sale.decorate('money')
    console.log(sale.getPrice())
  </script>
</body>
</html>